package dtool.parser;

public interface ILexElementSource<T extends ILexElementSource> {
	LexElement lastLexElement();

	int getLexElementPosition();

	int getSourcePosition();

	void setSourcePosition(int sourcePosition);

	LexElement lookAheadElement(int laIndex);

	T saveState();

	void resetState(T savedState);

	void dropState(T savedState);

	LexElement consumeInput();

	LexElement.MissingLexElement consumeSubChannelTokens();
}
